(0) Obligation:

Clauses:

shapes(Matrix, N) :- ','(varmat(Matrix, MatrixWithVars), unif_matrx(MatrixWithVars)).
varmat([], []).
varmat(.(L, Ls), .(VL, VLs)) :- ','(varmat(L, VL), varmat(Ls, VLs)).
varmat(.(black, Xs), .(black, VXs)) :- varmat(Xs, VXs).
varmat(.(white, Xs), .(w(X1), VXs)) :- varmat(Xs, VXs).
unif_matrx(.(L1, .(L2, Ls))) :- ','(unif_lines(L1, L2), unif_matrx(.(L2, Ls))).
unif_matrx(.(X2, [])).
unif_lines(.(W, .(X, L1s)), .(Y, .(Z, L2s))) :- ','(unif_pairs(.(W, .(X, .(Y, .(Z, .(W, .(Y, .(X, .(Z, .(W, .(Z, .(X, .(Y, []))))))))))))), unif_lines(.(X, L1s), .(Z, L2s))).
unif_lines(.(X3, []), .(X4, [])).
unif_pairs([]).
unif_pairs(.(A, .(B, Pairs))) :- ','(unif(A, B), unif_pairs(Pairs)).
unif(w(A), w(A)).
unif(black, black).
unif(black, w(X5)).
unif(w(X6), black).

Query: shapes(g,a)

(1) PrologToDTProblemTransformerProof (SOUND transformation)

Built DT problem from termination graph DT10.

(2) Obligation:

Triples:

varmatA(.(X1, X2), .(X3, X4)) :- varmatA(X1, X3).
varmatA(.(X1, X2), .(X3, X4)) :- ','(varmatcA(X1, X3), varmatA(X2, X4)).
varmatA(.(black, X1), .(black, X2)) :- varmatA(X1, X2).
varmatA(.(white, X1), .(w(X2), X3)) :- varmatA(X1, X3).
unif_matrxB(X1, .(X2, X3)) :- unif_linesC(X1, X2).
unif_matrxB(X1, .(X2, X3)) :- ','(unif_linescC(X1, X2), unif_matrxB(X2, X3)).
unif_linesC(.(X1, .(X2, X3)), .(X4, .(X5, X6))) :- pD(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6).
unif_pairsE(.(w(X1), .(w(X1), X2))) :- unif_pairsE(X2).
unif_pairsE(.(black, .(black, X1))) :- unif_pairsE(X1).
unif_pairsE(.(black, .(w(X1), X2))) :- unif_pairsE(X2).
unif_pairsE(.(w(X1), .(black, X2))) :- unif_pairsE(X2).
pF(X1, X2, X3) :- varmatA(X1, X2).
pF(X1, X2, X3) :- ','(varmatcA(X1, X2), unif_matrxB(X3, X2)).
pD(w(X1), .(w(X1), X2), X3, X4, X5, X6) :- unif_pairsE(X2).
pD(black, .(black, X1), X2, X3, X4, X5) :- unif_pairsE(X1).
pD(black, .(w(X1), X2), X3, X4, X5, X6) :- unif_pairsE(X2).
pD(w(X1), .(black, X2), X3, X4, X5, X6) :- unif_pairsE(X2).
pD(X1, X2, X3, X4, X5, X6) :- ','(unif_pairscG(X1, X2), unif_linesC(.(X3, X4), .(X5, X6))).
shapesH(.(X1, X2), X3) :- varmatA(X1, X4).
shapesH(.(X1, X2), X3) :- ','(varmatcA(X1, X4), pF(X2, X5, X4)).
shapesH(.(black, X1), X2) :- varmatA(X1, X3).
shapesH(.(black, X1), X2) :- ','(varmatcA(X1, .(X3, X4)), ','(unif_linescI(X3), unif_matrxB(X3, X4))).
shapesH(.(white, X1), X2) :- pF(X1, X3, w(X4)).

Clauses:

varmatcA([], []).
varmatcA(.(X1, X2), .(X3, X4)) :- ','(varmatcA(X1, X3), varmatcA(X2, X4)).
varmatcA(.(black, X1), .(black, X2)) :- varmatcA(X1, X2).
varmatcA(.(white, X1), .(w(X2), X3)) :- varmatcA(X1, X3).
unif_matrxcB(X1, .(X2, X3)) :- ','(unif_linescC(X1, X2), unif_matrxcB(X2, X3)).
unif_matrxcB(X1, []).
unif_linescC(.(X1, .(X2, X3)), .(X4, .(X5, X6))) :- qcD(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6).
unif_linescC(.(X1, []), .(X2, [])).
unif_pairscE([]).
unif_pairscE(.(w(X1), .(w(X1), X2))) :- unif_pairscE(X2).
unif_pairscE(.(black, .(black, X1))) :- unif_pairscE(X1).
unif_pairscE(.(black, .(w(X1), X2))) :- unif_pairscE(X2).
unif_pairscE(.(w(X1), .(black, X2))) :- unif_pairscE(X2).
qcF(X1, X2, X3) :- ','(varmatcA(X1, X2), unif_matrxcB(X3, X2)).
qcD(X1, X2, X3, X4, X5, X6) :- ','(unif_pairscG(X1, X2), unif_linescC(.(X3, X4), .(X5, X6))).
unif_pairscG(w(X1), .(w(X1), X2)) :- unif_pairscE(X2).
unif_pairscG(black, .(black, X1)) :- unif_pairscE(X1).
unif_pairscG(black, .(w(X1), X2)) :- unif_pairscE(X2).
unif_pairscG(w(X1), .(black, X2)) :- unif_pairscE(X2).

Afs:

shapesH(x1, x2)  =  shapesH(x1)

(3) UndefinedPredicateInTriplesTransformerProof (SOUND transformation)

Deleted triples and predicates having undefined goals [DT09].

(4) Obligation:

Triples:

varmatA(.(X1, X2), .(X3, X4)) :- varmatA(X1, X3).
varmatA(.(X1, X2), .(X3, X4)) :- ','(varmatcA(X1, X3), varmatA(X2, X4)).
varmatA(.(black, X1), .(black, X2)) :- varmatA(X1, X2).
varmatA(.(white, X1), .(w(X2), X3)) :- varmatA(X1, X3).
unif_matrxB(X1, .(X2, X3)) :- unif_linesC(X1, X2).
unif_matrxB(X1, .(X2, X3)) :- ','(unif_linescC(X1, X2), unif_matrxB(X2, X3)).
unif_linesC(.(X1, .(X2, X3)), .(X4, .(X5, X6))) :- pD(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6).
unif_pairsE(.(w(X1), .(w(X1), X2))) :- unif_pairsE(X2).
unif_pairsE(.(black, .(black, X1))) :- unif_pairsE(X1).
unif_pairsE(.(black, .(w(X1), X2))) :- unif_pairsE(X2).
unif_pairsE(.(w(X1), .(black, X2))) :- unif_pairsE(X2).
pF(X1, X2, X3) :- varmatA(X1, X2).
pF(X1, X2, X3) :- ','(varmatcA(X1, X2), unif_matrxB(X3, X2)).
pD(w(X1), .(w(X1), X2), X3, X4, X5, X6) :- unif_pairsE(X2).
pD(black, .(black, X1), X2, X3, X4, X5) :- unif_pairsE(X1).
pD(black, .(w(X1), X2), X3, X4, X5, X6) :- unif_pairsE(X2).
pD(w(X1), .(black, X2), X3, X4, X5, X6) :- unif_pairsE(X2).
pD(X1, X2, X3, X4, X5, X6) :- ','(unif_pairscG(X1, X2), unif_linesC(.(X3, X4), .(X5, X6))).
shapesH(.(X1, X2), X3) :- varmatA(X1, X4).
shapesH(.(X1, X2), X3) :- ','(varmatcA(X1, X4), pF(X2, X5, X4)).
shapesH(.(black, X1), X2) :- varmatA(X1, X3).
shapesH(.(white, X1), X2) :- pF(X1, X3, w(X4)).

Clauses:

varmatcA([], []).
varmatcA(.(X1, X2), .(X3, X4)) :- ','(varmatcA(X1, X3), varmatcA(X2, X4)).
varmatcA(.(black, X1), .(black, X2)) :- varmatcA(X1, X2).
varmatcA(.(white, X1), .(w(X2), X3)) :- varmatcA(X1, X3).
unif_matrxcB(X1, .(X2, X3)) :- ','(unif_linescC(X1, X2), unif_matrxcB(X2, X3)).
unif_matrxcB(X1, []).
unif_linescC(.(X1, .(X2, X3)), .(X4, .(X5, X6))) :- qcD(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6).
unif_linescC(.(X1, []), .(X2, [])).
unif_pairscE([]).
unif_pairscE(.(w(X1), .(w(X1), X2))) :- unif_pairscE(X2).
unif_pairscE(.(black, .(black, X1))) :- unif_pairscE(X1).
unif_pairscE(.(black, .(w(X1), X2))) :- unif_pairscE(X2).
unif_pairscE(.(w(X1), .(black, X2))) :- unif_pairscE(X2).
qcF(X1, X2, X3) :- ','(varmatcA(X1, X2), unif_matrxcB(X3, X2)).
qcD(X1, X2, X3, X4, X5, X6) :- ','(unif_pairscG(X1, X2), unif_linescC(.(X3, X4), .(X5, X6))).
unif_pairscG(w(X1), .(w(X1), X2)) :- unif_pairscE(X2).
unif_pairscG(black, .(black, X1)) :- unif_pairscE(X1).
unif_pairscG(black, .(w(X1), X2)) :- unif_pairscE(X2).
unif_pairscG(w(X1), .(black, X2)) :- unif_pairscE(X2).

Afs:

shapesH(x1, x2)  =  shapesH(x1)

(5) TriplesToPiDPProof (SOUND transformation)

We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes:
shapesH_in: (b,f)
varmatA_in: (b,f)
varmatcA_in: (b,f)
pF_in: (b,f,b)
unif_matrxB_in: (b,b)
unif_linesC_in: (b,b)
pD_in: (b,b,b,b,b,b)
unif_pairsE_in: (b)
unif_pairscG_in: (b,b)
unif_pairscE_in: (b)
unif_linescC_in: (b,b)
qcD_in: (b,b,b,b,b,b)
Transforming TRIPLES into the following Term Rewriting System:
Pi DP problem:
The TRS P consists of the following rules:

SHAPESH_IN_GA(.(X1, X2), X3) → U23_GA(X1, X2, X3, varmatA_in_ga(X1, X4))
SHAPESH_IN_GA(.(X1, X2), X3) → VARMATA_IN_GA(X1, X4)
VARMATA_IN_GA(.(X1, X2), .(X3, X4)) → U1_GA(X1, X2, X3, X4, varmatA_in_ga(X1, X3))
VARMATA_IN_GA(.(X1, X2), .(X3, X4)) → VARMATA_IN_GA(X1, X3)
VARMATA_IN_GA(.(X1, X2), .(X3, X4)) → U2_GA(X1, X2, X3, X4, varmatcA_in_ga(X1, X3))
U2_GA(X1, X2, X3, X4, varmatcA_out_ga(X1, X3)) → U3_GA(X1, X2, X3, X4, varmatA_in_ga(X2, X4))
U2_GA(X1, X2, X3, X4, varmatcA_out_ga(X1, X3)) → VARMATA_IN_GA(X2, X4)
VARMATA_IN_GA(.(black, X1), .(black, X2)) → U4_GA(X1, X2, varmatA_in_ga(X1, X2))
VARMATA_IN_GA(.(black, X1), .(black, X2)) → VARMATA_IN_GA(X1, X2)
VARMATA_IN_GA(.(white, X1), .(w(X2), X3)) → U5_GA(X1, X2, X3, varmatA_in_ga(X1, X3))
VARMATA_IN_GA(.(white, X1), .(w(X2), X3)) → VARMATA_IN_GA(X1, X3)
SHAPESH_IN_GA(.(X1, X2), X3) → U24_GA(X1, X2, X3, varmatcA_in_ga(X1, X4))
U24_GA(X1, X2, X3, varmatcA_out_ga(X1, X4)) → U25_GA(X1, X2, X3, pF_in_gag(X2, X5, X4))
U24_GA(X1, X2, X3, varmatcA_out_ga(X1, X4)) → PF_IN_GAG(X2, X5, X4)
PF_IN_GAG(X1, X2, X3) → U14_GAG(X1, X2, X3, varmatA_in_ga(X1, X2))
PF_IN_GAG(X1, X2, X3) → VARMATA_IN_GA(X1, X2)
PF_IN_GAG(X1, X2, X3) → U15_GAG(X1, X2, X3, varmatcA_in_ga(X1, X2))
U15_GAG(X1, X2, X3, varmatcA_out_ga(X1, X2)) → U16_GAG(X1, X2, X3, unif_matrxB_in_gg(X3, X2))
U15_GAG(X1, X2, X3, varmatcA_out_ga(X1, X2)) → UNIF_MATRXB_IN_GG(X3, X2)
UNIF_MATRXB_IN_GG(X1, .(X2, X3)) → U6_GG(X1, X2, X3, unif_linesC_in_gg(X1, X2))
UNIF_MATRXB_IN_GG(X1, .(X2, X3)) → UNIF_LINESC_IN_GG(X1, X2)
UNIF_LINESC_IN_GG(.(X1, .(X2, X3)), .(X4, .(X5, X6))) → U9_GG(X1, X2, X3, X4, X5, X6, pD_in_gggggg(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6))
UNIF_LINESC_IN_GG(.(X1, .(X2, X3)), .(X4, .(X5, X6))) → PD_IN_GGGGGG(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6)
PD_IN_GGGGGG(w(X1), .(w(X1), X2), X3, X4, X5, X6) → U17_GGGGGG(X1, X2, X3, X4, X5, X6, unif_pairsE_in_g(X2))
PD_IN_GGGGGG(w(X1), .(w(X1), X2), X3, X4, X5, X6) → UNIF_PAIRSE_IN_G(X2)
UNIF_PAIRSE_IN_G(.(w(X1), .(w(X1), X2))) → U10_G(X1, X2, unif_pairsE_in_g(X2))
UNIF_PAIRSE_IN_G(.(w(X1), .(w(X1), X2))) → UNIF_PAIRSE_IN_G(X2)
UNIF_PAIRSE_IN_G(.(black, .(black, X1))) → U11_G(X1, unif_pairsE_in_g(X1))
UNIF_PAIRSE_IN_G(.(black, .(black, X1))) → UNIF_PAIRSE_IN_G(X1)
UNIF_PAIRSE_IN_G(.(black, .(w(X1), X2))) → U12_G(X1, X2, unif_pairsE_in_g(X2))
UNIF_PAIRSE_IN_G(.(black, .(w(X1), X2))) → UNIF_PAIRSE_IN_G(X2)
UNIF_PAIRSE_IN_G(.(w(X1), .(black, X2))) → U13_G(X1, X2, unif_pairsE_in_g(X2))
UNIF_PAIRSE_IN_G(.(w(X1), .(black, X2))) → UNIF_PAIRSE_IN_G(X2)
PD_IN_GGGGGG(black, .(black, X1), X2, X3, X4, X5) → U18_GGGGGG(X1, X2, X3, X4, X5, unif_pairsE_in_g(X1))
PD_IN_GGGGGG(black, .(black, X1), X2, X3, X4, X5) → UNIF_PAIRSE_IN_G(X1)
PD_IN_GGGGGG(black, .(w(X1), X2), X3, X4, X5, X6) → U19_GGGGGG(X1, X2, X3, X4, X5, X6, unif_pairsE_in_g(X2))
PD_IN_GGGGGG(black, .(w(X1), X2), X3, X4, X5, X6) → UNIF_PAIRSE_IN_G(X2)
PD_IN_GGGGGG(w(X1), .(black, X2), X3, X4, X5, X6) → U20_GGGGGG(X1, X2, X3, X4, X5, X6, unif_pairsE_in_g(X2))
PD_IN_GGGGGG(w(X1), .(black, X2), X3, X4, X5, X6) → UNIF_PAIRSE_IN_G(X2)
PD_IN_GGGGGG(X1, X2, X3, X4, X5, X6) → U21_GGGGGG(X1, X2, X3, X4, X5, X6, unif_pairscG_in_gg(X1, X2))
U21_GGGGGG(X1, X2, X3, X4, X5, X6, unif_pairscG_out_gg(X1, X2)) → U22_GGGGGG(X1, X2, X3, X4, X5, X6, unif_linesC_in_gg(.(X3, X4), .(X5, X6)))
U21_GGGGGG(X1, X2, X3, X4, X5, X6, unif_pairscG_out_gg(X1, X2)) → UNIF_LINESC_IN_GG(.(X3, X4), .(X5, X6))
UNIF_MATRXB_IN_GG(X1, .(X2, X3)) → U7_GG(X1, X2, X3, unif_linescC_in_gg(X1, X2))
U7_GG(X1, X2, X3, unif_linescC_out_gg(X1, X2)) → U8_GG(X1, X2, X3, unif_matrxB_in_gg(X2, X3))
U7_GG(X1, X2, X3, unif_linescC_out_gg(X1, X2)) → UNIF_MATRXB_IN_GG(X2, X3)
SHAPESH_IN_GA(.(black, X1), X2) → U26_GA(X1, X2, varmatA_in_ga(X1, X3))
SHAPESH_IN_GA(.(black, X1), X2) → VARMATA_IN_GA(X1, X3)
SHAPESH_IN_GA(.(white, X1), X2) → U27_GA(X1, X2, pF_in_gag(X1, X3, w(X4)))
SHAPESH_IN_GA(.(white, X1), X2) → PF_IN_GAG(X1, X3, w(X4))

The TRS R consists of the following rules:

varmatcA_in_ga([], []) → varmatcA_out_ga([], [])
varmatcA_in_ga(.(X1, X2), .(X3, X4)) → U29_ga(X1, X2, X3, X4, varmatcA_in_ga(X1, X3))
varmatcA_in_ga(.(black, X1), .(black, X2)) → U31_ga(X1, X2, varmatcA_in_ga(X1, X2))
varmatcA_in_ga(.(white, X1), .(w(X2), X3)) → U32_ga(X1, X2, X3, varmatcA_in_ga(X1, X3))
U32_ga(X1, X2, X3, varmatcA_out_ga(X1, X3)) → varmatcA_out_ga(.(white, X1), .(w(X2), X3))
U31_ga(X1, X2, varmatcA_out_ga(X1, X2)) → varmatcA_out_ga(.(black, X1), .(black, X2))
U29_ga(X1, X2, X3, X4, varmatcA_out_ga(X1, X3)) → U30_ga(X1, X2, X3, X4, varmatcA_in_ga(X2, X4))
U30_ga(X1, X2, X3, X4, varmatcA_out_ga(X2, X4)) → varmatcA_out_ga(.(X1, X2), .(X3, X4))
unif_pairscG_in_gg(w(X1), .(w(X1), X2)) → U44_gg(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g([]) → unif_pairscE_out_g([])
unif_pairscE_in_g(.(w(X1), .(w(X1), X2))) → U36_g(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(black, .(black, X1))) → U37_g(X1, unif_pairscE_in_g(X1))
unif_pairscE_in_g(.(black, .(w(X1), X2))) → U38_g(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(w(X1), .(black, X2))) → U39_g(X1, X2, unif_pairscE_in_g(X2))
U39_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w(X1), .(black, X2)))
U38_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(black, .(w(X1), X2)))
U37_g(X1, unif_pairscE_out_g(X1)) → unif_pairscE_out_g(.(black, .(black, X1)))
U36_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w(X1), .(w(X1), X2)))
U44_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w(X1), .(w(X1), X2))
unif_pairscG_in_gg(black, .(black, X1)) → U45_gg(X1, unif_pairscE_in_g(X1))
U45_gg(X1, unif_pairscE_out_g(X1)) → unif_pairscG_out_gg(black, .(black, X1))
unif_pairscG_in_gg(black, .(w(X1), X2)) → U46_gg(X1, X2, unif_pairscE_in_g(X2))
U46_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(black, .(w(X1), X2))
unif_pairscG_in_gg(w(X1), .(black, X2)) → U47_gg(X1, X2, unif_pairscE_in_g(X2))
U47_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w(X1), .(black, X2))
unif_linescC_in_gg(.(X1, .(X2, X3)), .(X4, .(X5, X6))) → U35_gg(X1, X2, X3, X4, X5, X6, qcD_in_gggggg(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6))
qcD_in_gggggg(X1, X2, X3, X4, X5, X6) → U42_gggggg(X1, X2, X3, X4, X5, X6, unif_pairscG_in_gg(X1, X2))
U42_gggggg(X1, X2, X3, X4, X5, X6, unif_pairscG_out_gg(X1, X2)) → U43_gggggg(X1, X2, X3, X4, X5, X6, unif_linescC_in_gg(.(X3, X4), .(X5, X6)))
unif_linescC_in_gg(.(X1, []), .(X2, [])) → unif_linescC_out_gg(.(X1, []), .(X2, []))
U43_gggggg(X1, X2, X3, X4, X5, X6, unif_linescC_out_gg(.(X3, X4), .(X5, X6))) → qcD_out_gggggg(X1, X2, X3, X4, X5, X6)
U35_gg(X1, X2, X3, X4, X5, X6, qcD_out_gggggg(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6)) → unif_linescC_out_gg(.(X1, .(X2, X3)), .(X4, .(X5, X6)))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
varmatA_in_ga(x1, x2)  =  varmatA_in_ga(x1)
varmatcA_in_ga(x1, x2)  =  varmatcA_in_ga(x1)
[]  =  []
varmatcA_out_ga(x1, x2)  =  varmatcA_out_ga(x1, x2)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x1, x2, x5)
black  =  black
U31_ga(x1, x2, x3)  =  U31_ga(x1, x3)
white  =  white
U32_ga(x1, x2, x3, x4)  =  U32_ga(x1, x4)
w(x1)  =  w
U30_ga(x1, x2, x3, x4, x5)  =  U30_ga(x1, x2, x3, x5)
pF_in_gag(x1, x2, x3)  =  pF_in_gag(x1, x3)
unif_matrxB_in_gg(x1, x2)  =  unif_matrxB_in_gg(x1, x2)
unif_linesC_in_gg(x1, x2)  =  unif_linesC_in_gg(x1, x2)
pD_in_gggggg(x1, x2, x3, x4, x5, x6)  =  pD_in_gggggg(x1, x2, x3, x4, x5, x6)
unif_pairsE_in_g(x1)  =  unif_pairsE_in_g(x1)
unif_pairscG_in_gg(x1, x2)  =  unif_pairscG_in_gg(x1, x2)
U44_gg(x1, x2, x3)  =  U44_gg(x2, x3)
unif_pairscE_in_g(x1)  =  unif_pairscE_in_g(x1)
unif_pairscE_out_g(x1)  =  unif_pairscE_out_g(x1)
U36_g(x1, x2, x3)  =  U36_g(x2, x3)
U37_g(x1, x2)  =  U37_g(x1, x2)
U38_g(x1, x2, x3)  =  U38_g(x2, x3)
U39_g(x1, x2, x3)  =  U39_g(x2, x3)
unif_pairscG_out_gg(x1, x2)  =  unif_pairscG_out_gg(x1, x2)
U45_gg(x1, x2)  =  U45_gg(x1, x2)
U46_gg(x1, x2, x3)  =  U46_gg(x2, x3)
U47_gg(x1, x2, x3)  =  U47_gg(x2, x3)
unif_linescC_in_gg(x1, x2)  =  unif_linescC_in_gg(x1, x2)
U35_gg(x1, x2, x3, x4, x5, x6, x7)  =  U35_gg(x1, x2, x3, x4, x5, x6, x7)
qcD_in_gggggg(x1, x2, x3, x4, x5, x6)  =  qcD_in_gggggg(x1, x2, x3, x4, x5, x6)
U42_gggggg(x1, x2, x3, x4, x5, x6, x7)  =  U42_gggggg(x1, x2, x3, x4, x5, x6, x7)
U43_gggggg(x1, x2, x3, x4, x5, x6, x7)  =  U43_gggggg(x1, x2, x3, x4, x5, x6, x7)
unif_linescC_out_gg(x1, x2)  =  unif_linescC_out_gg(x1, x2)
qcD_out_gggggg(x1, x2, x3, x4, x5, x6)  =  qcD_out_gggggg(x1, x2, x3, x4, x5, x6)
SHAPESH_IN_GA(x1, x2)  =  SHAPESH_IN_GA(x1)
U23_GA(x1, x2, x3, x4)  =  U23_GA(x1, x2, x4)
VARMATA_IN_GA(x1, x2)  =  VARMATA_IN_GA(x1)
U1_GA(x1, x2, x3, x4, x5)  =  U1_GA(x1, x2, x5)
U2_GA(x1, x2, x3, x4, x5)  =  U2_GA(x1, x2, x5)
U3_GA(x1, x2, x3, x4, x5)  =  U3_GA(x1, x2, x5)
U4_GA(x1, x2, x3)  =  U4_GA(x1, x3)
U5_GA(x1, x2, x3, x4)  =  U5_GA(x1, x4)
U24_GA(x1, x2, x3, x4)  =  U24_GA(x1, x2, x4)
U25_GA(x1, x2, x3, x4)  =  U25_GA(x1, x2, x4)
PF_IN_GAG(x1, x2, x3)  =  PF_IN_GAG(x1, x3)
U14_GAG(x1, x2, x3, x4)  =  U14_GAG(x1, x3, x4)
U15_GAG(x1, x2, x3, x4)  =  U15_GAG(x1, x3, x4)
U16_GAG(x1, x2, x3, x4)  =  U16_GAG(x1, x3, x4)
UNIF_MATRXB_IN_GG(x1, x2)  =  UNIF_MATRXB_IN_GG(x1, x2)
U6_GG(x1, x2, x3, x4)  =  U6_GG(x1, x2, x3, x4)
UNIF_LINESC_IN_GG(x1, x2)  =  UNIF_LINESC_IN_GG(x1, x2)
U9_GG(x1, x2, x3, x4, x5, x6, x7)  =  U9_GG(x1, x2, x3, x4, x5, x6, x7)
PD_IN_GGGGGG(x1, x2, x3, x4, x5, x6)  =  PD_IN_GGGGGG(x1, x2, x3, x4, x5, x6)
U17_GGGGGG(x1, x2, x3, x4, x5, x6, x7)  =  U17_GGGGGG(x2, x3, x4, x5, x6, x7)
UNIF_PAIRSE_IN_G(x1)  =  UNIF_PAIRSE_IN_G(x1)
U10_G(x1, x2, x3)  =  U10_G(x2, x3)
U11_G(x1, x2)  =  U11_G(x1, x2)
U12_G(x1, x2, x3)  =  U12_G(x2, x3)
U13_G(x1, x2, x3)  =  U13_G(x2, x3)
U18_GGGGGG(x1, x2, x3, x4, x5, x6)  =  U18_GGGGGG(x1, x2, x3, x4, x5, x6)
U19_GGGGGG(x1, x2, x3, x4, x5, x6, x7)  =  U19_GGGGGG(x2, x3, x4, x5, x6, x7)
U20_GGGGGG(x1, x2, x3, x4, x5, x6, x7)  =  U20_GGGGGG(x2, x3, x4, x5, x6, x7)
U21_GGGGGG(x1, x2, x3, x4, x5, x6, x7)  =  U21_GGGGGG(x1, x2, x3, x4, x5, x6, x7)
U22_GGGGGG(x1, x2, x3, x4, x5, x6, x7)  =  U22_GGGGGG(x1, x2, x3, x4, x5, x6, x7)
U7_GG(x1, x2, x3, x4)  =  U7_GG(x1, x2, x3, x4)
U8_GG(x1, x2, x3, x4)  =  U8_GG(x1, x2, x3, x4)
U26_GA(x1, x2, x3)  =  U26_GA(x1, x3)
U27_GA(x1, x2, x3)  =  U27_GA(x1, x3)

We have to consider all (P,R,Pi)-chains

Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES

(6) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

SHAPESH_IN_GA(.(X1, X2), X3) → U23_GA(X1, X2, X3, varmatA_in_ga(X1, X4))
SHAPESH_IN_GA(.(X1, X2), X3) → VARMATA_IN_GA(X1, X4)
VARMATA_IN_GA(.(X1, X2), .(X3, X4)) → U1_GA(X1, X2, X3, X4, varmatA_in_ga(X1, X3))
VARMATA_IN_GA(.(X1, X2), .(X3, X4)) → VARMATA_IN_GA(X1, X3)
VARMATA_IN_GA(.(X1, X2), .(X3, X4)) → U2_GA(X1, X2, X3, X4, varmatcA_in_ga(X1, X3))
U2_GA(X1, X2, X3, X4, varmatcA_out_ga(X1, X3)) → U3_GA(X1, X2, X3, X4, varmatA_in_ga(X2, X4))
U2_GA(X1, X2, X3, X4, varmatcA_out_ga(X1, X3)) → VARMATA_IN_GA(X2, X4)
VARMATA_IN_GA(.(black, X1), .(black, X2)) → U4_GA(X1, X2, varmatA_in_ga(X1, X2))
VARMATA_IN_GA(.(black, X1), .(black, X2)) → VARMATA_IN_GA(X1, X2)
VARMATA_IN_GA(.(white, X1), .(w(X2), X3)) → U5_GA(X1, X2, X3, varmatA_in_ga(X1, X3))
VARMATA_IN_GA(.(white, X1), .(w(X2), X3)) → VARMATA_IN_GA(X1, X3)
SHAPESH_IN_GA(.(X1, X2), X3) → U24_GA(X1, X2, X3, varmatcA_in_ga(X1, X4))
U24_GA(X1, X2, X3, varmatcA_out_ga(X1, X4)) → U25_GA(X1, X2, X3, pF_in_gag(X2, X5, X4))
U24_GA(X1, X2, X3, varmatcA_out_ga(X1, X4)) → PF_IN_GAG(X2, X5, X4)
PF_IN_GAG(X1, X2, X3) → U14_GAG(X1, X2, X3, varmatA_in_ga(X1, X2))
PF_IN_GAG(X1, X2, X3) → VARMATA_IN_GA(X1, X2)
PF_IN_GAG(X1, X2, X3) → U15_GAG(X1, X2, X3, varmatcA_in_ga(X1, X2))
U15_GAG(X1, X2, X3, varmatcA_out_ga(X1, X2)) → U16_GAG(X1, X2, X3, unif_matrxB_in_gg(X3, X2))
U15_GAG(X1, X2, X3, varmatcA_out_ga(X1, X2)) → UNIF_MATRXB_IN_GG(X3, X2)
UNIF_MATRXB_IN_GG(X1, .(X2, X3)) → U6_GG(X1, X2, X3, unif_linesC_in_gg(X1, X2))
UNIF_MATRXB_IN_GG(X1, .(X2, X3)) → UNIF_LINESC_IN_GG(X1, X2)
UNIF_LINESC_IN_GG(.(X1, .(X2, X3)), .(X4, .(X5, X6))) → U9_GG(X1, X2, X3, X4, X5, X6, pD_in_gggggg(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6))
UNIF_LINESC_IN_GG(.(X1, .(X2, X3)), .(X4, .(X5, X6))) → PD_IN_GGGGGG(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6)
PD_IN_GGGGGG(w(X1), .(w(X1), X2), X3, X4, X5, X6) → U17_GGGGGG(X1, X2, X3, X4, X5, X6, unif_pairsE_in_g(X2))
PD_IN_GGGGGG(w(X1), .(w(X1), X2), X3, X4, X5, X6) → UNIF_PAIRSE_IN_G(X2)
UNIF_PAIRSE_IN_G(.(w(X1), .(w(X1), X2))) → U10_G(X1, X2, unif_pairsE_in_g(X2))
UNIF_PAIRSE_IN_G(.(w(X1), .(w(X1), X2))) → UNIF_PAIRSE_IN_G(X2)
UNIF_PAIRSE_IN_G(.(black, .(black, X1))) → U11_G(X1, unif_pairsE_in_g(X1))
UNIF_PAIRSE_IN_G(.(black, .(black, X1))) → UNIF_PAIRSE_IN_G(X1)
UNIF_PAIRSE_IN_G(.(black, .(w(X1), X2))) → U12_G(X1, X2, unif_pairsE_in_g(X2))
UNIF_PAIRSE_IN_G(.(black, .(w(X1), X2))) → UNIF_PAIRSE_IN_G(X2)
UNIF_PAIRSE_IN_G(.(w(X1), .(black, X2))) → U13_G(X1, X2, unif_pairsE_in_g(X2))
UNIF_PAIRSE_IN_G(.(w(X1), .(black, X2))) → UNIF_PAIRSE_IN_G(X2)
PD_IN_GGGGGG(black, .(black, X1), X2, X3, X4, X5) → U18_GGGGGG(X1, X2, X3, X4, X5, unif_pairsE_in_g(X1))
PD_IN_GGGGGG(black, .(black, X1), X2, X3, X4, X5) → UNIF_PAIRSE_IN_G(X1)
PD_IN_GGGGGG(black, .(w(X1), X2), X3, X4, X5, X6) → U19_GGGGGG(X1, X2, X3, X4, X5, X6, unif_pairsE_in_g(X2))
PD_IN_GGGGGG(black, .(w(X1), X2), X3, X4, X5, X6) → UNIF_PAIRSE_IN_G(X2)
PD_IN_GGGGGG(w(X1), .(black, X2), X3, X4, X5, X6) → U20_GGGGGG(X1, X2, X3, X4, X5, X6, unif_pairsE_in_g(X2))
PD_IN_GGGGGG(w(X1), .(black, X2), X3, X4, X5, X6) → UNIF_PAIRSE_IN_G(X2)
PD_IN_GGGGGG(X1, X2, X3, X4, X5, X6) → U21_GGGGGG(X1, X2, X3, X4, X5, X6, unif_pairscG_in_gg(X1, X2))
U21_GGGGGG(X1, X2, X3, X4, X5, X6, unif_pairscG_out_gg(X1, X2)) → U22_GGGGGG(X1, X2, X3, X4, X5, X6, unif_linesC_in_gg(.(X3, X4), .(X5, X6)))
U21_GGGGGG(X1, X2, X3, X4, X5, X6, unif_pairscG_out_gg(X1, X2)) → UNIF_LINESC_IN_GG(.(X3, X4), .(X5, X6))
UNIF_MATRXB_IN_GG(X1, .(X2, X3)) → U7_GG(X1, X2, X3, unif_linescC_in_gg(X1, X2))
U7_GG(X1, X2, X3, unif_linescC_out_gg(X1, X2)) → U8_GG(X1, X2, X3, unif_matrxB_in_gg(X2, X3))
U7_GG(X1, X2, X3, unif_linescC_out_gg(X1, X2)) → UNIF_MATRXB_IN_GG(X2, X3)
SHAPESH_IN_GA(.(black, X1), X2) → U26_GA(X1, X2, varmatA_in_ga(X1, X3))
SHAPESH_IN_GA(.(black, X1), X2) → VARMATA_IN_GA(X1, X3)
SHAPESH_IN_GA(.(white, X1), X2) → U27_GA(X1, X2, pF_in_gag(X1, X3, w(X4)))
SHAPESH_IN_GA(.(white, X1), X2) → PF_IN_GAG(X1, X3, w(X4))

The TRS R consists of the following rules:

varmatcA_in_ga([], []) → varmatcA_out_ga([], [])
varmatcA_in_ga(.(X1, X2), .(X3, X4)) → U29_ga(X1, X2, X3, X4, varmatcA_in_ga(X1, X3))
varmatcA_in_ga(.(black, X1), .(black, X2)) → U31_ga(X1, X2, varmatcA_in_ga(X1, X2))
varmatcA_in_ga(.(white, X1), .(w(X2), X3)) → U32_ga(X1, X2, X3, varmatcA_in_ga(X1, X3))
U32_ga(X1, X2, X3, varmatcA_out_ga(X1, X3)) → varmatcA_out_ga(.(white, X1), .(w(X2), X3))
U31_ga(X1, X2, varmatcA_out_ga(X1, X2)) → varmatcA_out_ga(.(black, X1), .(black, X2))
U29_ga(X1, X2, X3, X4, varmatcA_out_ga(X1, X3)) → U30_ga(X1, X2, X3, X4, varmatcA_in_ga(X2, X4))
U30_ga(X1, X2, X3, X4, varmatcA_out_ga(X2, X4)) → varmatcA_out_ga(.(X1, X2), .(X3, X4))
unif_pairscG_in_gg(w(X1), .(w(X1), X2)) → U44_gg(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g([]) → unif_pairscE_out_g([])
unif_pairscE_in_g(.(w(X1), .(w(X1), X2))) → U36_g(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(black, .(black, X1))) → U37_g(X1, unif_pairscE_in_g(X1))
unif_pairscE_in_g(.(black, .(w(X1), X2))) → U38_g(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(w(X1), .(black, X2))) → U39_g(X1, X2, unif_pairscE_in_g(X2))
U39_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w(X1), .(black, X2)))
U38_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(black, .(w(X1), X2)))
U37_g(X1, unif_pairscE_out_g(X1)) → unif_pairscE_out_g(.(black, .(black, X1)))
U36_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w(X1), .(w(X1), X2)))
U44_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w(X1), .(w(X1), X2))
unif_pairscG_in_gg(black, .(black, X1)) → U45_gg(X1, unif_pairscE_in_g(X1))
U45_gg(X1, unif_pairscE_out_g(X1)) → unif_pairscG_out_gg(black, .(black, X1))
unif_pairscG_in_gg(black, .(w(X1), X2)) → U46_gg(X1, X2, unif_pairscE_in_g(X2))
U46_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(black, .(w(X1), X2))
unif_pairscG_in_gg(w(X1), .(black, X2)) → U47_gg(X1, X2, unif_pairscE_in_g(X2))
U47_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w(X1), .(black, X2))
unif_linescC_in_gg(.(X1, .(X2, X3)), .(X4, .(X5, X6))) → U35_gg(X1, X2, X3, X4, X5, X6, qcD_in_gggggg(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6))
qcD_in_gggggg(X1, X2, X3, X4, X5, X6) → U42_gggggg(X1, X2, X3, X4, X5, X6, unif_pairscG_in_gg(X1, X2))
U42_gggggg(X1, X2, X3, X4, X5, X6, unif_pairscG_out_gg(X1, X2)) → U43_gggggg(X1, X2, X3, X4, X5, X6, unif_linescC_in_gg(.(X3, X4), .(X5, X6)))
unif_linescC_in_gg(.(X1, []), .(X2, [])) → unif_linescC_out_gg(.(X1, []), .(X2, []))
U43_gggggg(X1, X2, X3, X4, X5, X6, unif_linescC_out_gg(.(X3, X4), .(X5, X6))) → qcD_out_gggggg(X1, X2, X3, X4, X5, X6)
U35_gg(X1, X2, X3, X4, X5, X6, qcD_out_gggggg(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6)) → unif_linescC_out_gg(.(X1, .(X2, X3)), .(X4, .(X5, X6)))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
varmatA_in_ga(x1, x2)  =  varmatA_in_ga(x1)
varmatcA_in_ga(x1, x2)  =  varmatcA_in_ga(x1)
[]  =  []
varmatcA_out_ga(x1, x2)  =  varmatcA_out_ga(x1, x2)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x1, x2, x5)
black  =  black
U31_ga(x1, x2, x3)  =  U31_ga(x1, x3)
white  =  white
U32_ga(x1, x2, x3, x4)  =  U32_ga(x1, x4)
w(x1)  =  w
U30_ga(x1, x2, x3, x4, x5)  =  U30_ga(x1, x2, x3, x5)
pF_in_gag(x1, x2, x3)  =  pF_in_gag(x1, x3)
unif_matrxB_in_gg(x1, x2)  =  unif_matrxB_in_gg(x1, x2)
unif_linesC_in_gg(x1, x2)  =  unif_linesC_in_gg(x1, x2)
pD_in_gggggg(x1, x2, x3, x4, x5, x6)  =  pD_in_gggggg(x1, x2, x3, x4, x5, x6)
unif_pairsE_in_g(x1)  =  unif_pairsE_in_g(x1)
unif_pairscG_in_gg(x1, x2)  =  unif_pairscG_in_gg(x1, x2)
U44_gg(x1, x2, x3)  =  U44_gg(x2, x3)
unif_pairscE_in_g(x1)  =  unif_pairscE_in_g(x1)
unif_pairscE_out_g(x1)  =  unif_pairscE_out_g(x1)
U36_g(x1, x2, x3)  =  U36_g(x2, x3)
U37_g(x1, x2)  =  U37_g(x1, x2)
U38_g(x1, x2, x3)  =  U38_g(x2, x3)
U39_g(x1, x2, x3)  =  U39_g(x2, x3)
unif_pairscG_out_gg(x1, x2)  =  unif_pairscG_out_gg(x1, x2)
U45_gg(x1, x2)  =  U45_gg(x1, x2)
U46_gg(x1, x2, x3)  =  U46_gg(x2, x3)
U47_gg(x1, x2, x3)  =  U47_gg(x2, x3)
unif_linescC_in_gg(x1, x2)  =  unif_linescC_in_gg(x1, x2)
U35_gg(x1, x2, x3, x4, x5, x6, x7)  =  U35_gg(x1, x2, x3, x4, x5, x6, x7)
qcD_in_gggggg(x1, x2, x3, x4, x5, x6)  =  qcD_in_gggggg(x1, x2, x3, x4, x5, x6)
U42_gggggg(x1, x2, x3, x4, x5, x6, x7)  =  U42_gggggg(x1, x2, x3, x4, x5, x6, x7)
U43_gggggg(x1, x2, x3, x4, x5, x6, x7)  =  U43_gggggg(x1, x2, x3, x4, x5, x6, x7)
unif_linescC_out_gg(x1, x2)  =  unif_linescC_out_gg(x1, x2)
qcD_out_gggggg(x1, x2, x3, x4, x5, x6)  =  qcD_out_gggggg(x1, x2, x3, x4, x5, x6)
SHAPESH_IN_GA(x1, x2)  =  SHAPESH_IN_GA(x1)
U23_GA(x1, x2, x3, x4)  =  U23_GA(x1, x2, x4)
VARMATA_IN_GA(x1, x2)  =  VARMATA_IN_GA(x1)
U1_GA(x1, x2, x3, x4, x5)  =  U1_GA(x1, x2, x5)
U2_GA(x1, x2, x3, x4, x5)  =  U2_GA(x1, x2, x5)
U3_GA(x1, x2, x3, x4, x5)  =  U3_GA(x1, x2, x5)
U4_GA(x1, x2, x3)  =  U4_GA(x1, x3)
U5_GA(x1, x2, x3, x4)  =  U5_GA(x1, x4)
U24_GA(x1, x2, x3, x4)  =  U24_GA(x1, x2, x4)
U25_GA(x1, x2, x3, x4)  =  U25_GA(x1, x2, x4)
PF_IN_GAG(x1, x2, x3)  =  PF_IN_GAG(x1, x3)
U14_GAG(x1, x2, x3, x4)  =  U14_GAG(x1, x3, x4)
U15_GAG(x1, x2, x3, x4)  =  U15_GAG(x1, x3, x4)
U16_GAG(x1, x2, x3, x4)  =  U16_GAG(x1, x3, x4)
UNIF_MATRXB_IN_GG(x1, x2)  =  UNIF_MATRXB_IN_GG(x1, x2)
U6_GG(x1, x2, x3, x4)  =  U6_GG(x1, x2, x3, x4)
UNIF_LINESC_IN_GG(x1, x2)  =  UNIF_LINESC_IN_GG(x1, x2)
U9_GG(x1, x2, x3, x4, x5, x6, x7)  =  U9_GG(x1, x2, x3, x4, x5, x6, x7)
PD_IN_GGGGGG(x1, x2, x3, x4, x5, x6)  =  PD_IN_GGGGGG(x1, x2, x3, x4, x5, x6)
U17_GGGGGG(x1, x2, x3, x4, x5, x6, x7)  =  U17_GGGGGG(x2, x3, x4, x5, x6, x7)
UNIF_PAIRSE_IN_G(x1)  =  UNIF_PAIRSE_IN_G(x1)
U10_G(x1, x2, x3)  =  U10_G(x2, x3)
U11_G(x1, x2)  =  U11_G(x1, x2)
U12_G(x1, x2, x3)  =  U12_G(x2, x3)
U13_G(x1, x2, x3)  =  U13_G(x2, x3)
U18_GGGGGG(x1, x2, x3, x4, x5, x6)  =  U18_GGGGGG(x1, x2, x3, x4, x5, x6)
U19_GGGGGG(x1, x2, x3, x4, x5, x6, x7)  =  U19_GGGGGG(x2, x3, x4, x5, x6, x7)
U20_GGGGGG(x1, x2, x3, x4, x5, x6, x7)  =  U20_GGGGGG(x2, x3, x4, x5, x6, x7)
U21_GGGGGG(x1, x2, x3, x4, x5, x6, x7)  =  U21_GGGGGG(x1, x2, x3, x4, x5, x6, x7)
U22_GGGGGG(x1, x2, x3, x4, x5, x6, x7)  =  U22_GGGGGG(x1, x2, x3, x4, x5, x6, x7)
U7_GG(x1, x2, x3, x4)  =  U7_GG(x1, x2, x3, x4)
U8_GG(x1, x2, x3, x4)  =  U8_GG(x1, x2, x3, x4)
U26_GA(x1, x2, x3)  =  U26_GA(x1, x3)
U27_GA(x1, x2, x3)  =  U27_GA(x1, x3)

We have to consider all (P,R,Pi)-chains

(7) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 4 SCCs with 35 less nodes.

(8) Complex Obligation (AND)

(9) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

UNIF_PAIRSE_IN_G(.(black, .(black, X1))) → UNIF_PAIRSE_IN_G(X1)
UNIF_PAIRSE_IN_G(.(w(X1), .(w(X1), X2))) → UNIF_PAIRSE_IN_G(X2)
UNIF_PAIRSE_IN_G(.(black, .(w(X1), X2))) → UNIF_PAIRSE_IN_G(X2)
UNIF_PAIRSE_IN_G(.(w(X1), .(black, X2))) → UNIF_PAIRSE_IN_G(X2)

The TRS R consists of the following rules:

varmatcA_in_ga([], []) → varmatcA_out_ga([], [])
varmatcA_in_ga(.(X1, X2), .(X3, X4)) → U29_ga(X1, X2, X3, X4, varmatcA_in_ga(X1, X3))
varmatcA_in_ga(.(black, X1), .(black, X2)) → U31_ga(X1, X2, varmatcA_in_ga(X1, X2))
varmatcA_in_ga(.(white, X1), .(w(X2), X3)) → U32_ga(X1, X2, X3, varmatcA_in_ga(X1, X3))
U32_ga(X1, X2, X3, varmatcA_out_ga(X1, X3)) → varmatcA_out_ga(.(white, X1), .(w(X2), X3))
U31_ga(X1, X2, varmatcA_out_ga(X1, X2)) → varmatcA_out_ga(.(black, X1), .(black, X2))
U29_ga(X1, X2, X3, X4, varmatcA_out_ga(X1, X3)) → U30_ga(X1, X2, X3, X4, varmatcA_in_ga(X2, X4))
U30_ga(X1, X2, X3, X4, varmatcA_out_ga(X2, X4)) → varmatcA_out_ga(.(X1, X2), .(X3, X4))
unif_pairscG_in_gg(w(X1), .(w(X1), X2)) → U44_gg(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g([]) → unif_pairscE_out_g([])
unif_pairscE_in_g(.(w(X1), .(w(X1), X2))) → U36_g(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(black, .(black, X1))) → U37_g(X1, unif_pairscE_in_g(X1))
unif_pairscE_in_g(.(black, .(w(X1), X2))) → U38_g(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(w(X1), .(black, X2))) → U39_g(X1, X2, unif_pairscE_in_g(X2))
U39_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w(X1), .(black, X2)))
U38_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(black, .(w(X1), X2)))
U37_g(X1, unif_pairscE_out_g(X1)) → unif_pairscE_out_g(.(black, .(black, X1)))
U36_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w(X1), .(w(X1), X2)))
U44_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w(X1), .(w(X1), X2))
unif_pairscG_in_gg(black, .(black, X1)) → U45_gg(X1, unif_pairscE_in_g(X1))
U45_gg(X1, unif_pairscE_out_g(X1)) → unif_pairscG_out_gg(black, .(black, X1))
unif_pairscG_in_gg(black, .(w(X1), X2)) → U46_gg(X1, X2, unif_pairscE_in_g(X2))
U46_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(black, .(w(X1), X2))
unif_pairscG_in_gg(w(X1), .(black, X2)) → U47_gg(X1, X2, unif_pairscE_in_g(X2))
U47_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w(X1), .(black, X2))
unif_linescC_in_gg(.(X1, .(X2, X3)), .(X4, .(X5, X6))) → U35_gg(X1, X2, X3, X4, X5, X6, qcD_in_gggggg(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6))
qcD_in_gggggg(X1, X2, X3, X4, X5, X6) → U42_gggggg(X1, X2, X3, X4, X5, X6, unif_pairscG_in_gg(X1, X2))
U42_gggggg(X1, X2, X3, X4, X5, X6, unif_pairscG_out_gg(X1, X2)) → U43_gggggg(X1, X2, X3, X4, X5, X6, unif_linescC_in_gg(.(X3, X4), .(X5, X6)))
unif_linescC_in_gg(.(X1, []), .(X2, [])) → unif_linescC_out_gg(.(X1, []), .(X2, []))
U43_gggggg(X1, X2, X3, X4, X5, X6, unif_linescC_out_gg(.(X3, X4), .(X5, X6))) → qcD_out_gggggg(X1, X2, X3, X4, X5, X6)
U35_gg(X1, X2, X3, X4, X5, X6, qcD_out_gggggg(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6)) → unif_linescC_out_gg(.(X1, .(X2, X3)), .(X4, .(X5, X6)))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
varmatcA_in_ga(x1, x2)  =  varmatcA_in_ga(x1)
[]  =  []
varmatcA_out_ga(x1, x2)  =  varmatcA_out_ga(x1, x2)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x1, x2, x5)
black  =  black
U31_ga(x1, x2, x3)  =  U31_ga(x1, x3)
white  =  white
U32_ga(x1, x2, x3, x4)  =  U32_ga(x1, x4)
w(x1)  =  w
U30_ga(x1, x2, x3, x4, x5)  =  U30_ga(x1, x2, x3, x5)
unif_pairscG_in_gg(x1, x2)  =  unif_pairscG_in_gg(x1, x2)
U44_gg(x1, x2, x3)  =  U44_gg(x2, x3)
unif_pairscE_in_g(x1)  =  unif_pairscE_in_g(x1)
unif_pairscE_out_g(x1)  =  unif_pairscE_out_g(x1)
U36_g(x1, x2, x3)  =  U36_g(x2, x3)
U37_g(x1, x2)  =  U37_g(x1, x2)
U38_g(x1, x2, x3)  =  U38_g(x2, x3)
U39_g(x1, x2, x3)  =  U39_g(x2, x3)
unif_pairscG_out_gg(x1, x2)  =  unif_pairscG_out_gg(x1, x2)
U45_gg(x1, x2)  =  U45_gg(x1, x2)
U46_gg(x1, x2, x3)  =  U46_gg(x2, x3)
U47_gg(x1, x2, x3)  =  U47_gg(x2, x3)
unif_linescC_in_gg(x1, x2)  =  unif_linescC_in_gg(x1, x2)
U35_gg(x1, x2, x3, x4, x5, x6, x7)  =  U35_gg(x1, x2, x3, x4, x5, x6, x7)
qcD_in_gggggg(x1, x2, x3, x4, x5, x6)  =  qcD_in_gggggg(x1, x2, x3, x4, x5, x6)
U42_gggggg(x1, x2, x3, x4, x5, x6, x7)  =  U42_gggggg(x1, x2, x3, x4, x5, x6, x7)
U43_gggggg(x1, x2, x3, x4, x5, x6, x7)  =  U43_gggggg(x1, x2, x3, x4, x5, x6, x7)
unif_linescC_out_gg(x1, x2)  =  unif_linescC_out_gg(x1, x2)
qcD_out_gggggg(x1, x2, x3, x4, x5, x6)  =  qcD_out_gggggg(x1, x2, x3, x4, x5, x6)
UNIF_PAIRSE_IN_G(x1)  =  UNIF_PAIRSE_IN_G(x1)

We have to consider all (P,R,Pi)-chains

(10) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(11) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

UNIF_PAIRSE_IN_G(.(black, .(black, X1))) → UNIF_PAIRSE_IN_G(X1)
UNIF_PAIRSE_IN_G(.(w(X1), .(w(X1), X2))) → UNIF_PAIRSE_IN_G(X2)
UNIF_PAIRSE_IN_G(.(black, .(w(X1), X2))) → UNIF_PAIRSE_IN_G(X2)
UNIF_PAIRSE_IN_G(.(w(X1), .(black, X2))) → UNIF_PAIRSE_IN_G(X2)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
black  =  black
w(x1)  =  w
UNIF_PAIRSE_IN_G(x1)  =  UNIF_PAIRSE_IN_G(x1)

We have to consider all (P,R,Pi)-chains

(12) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(13) Obligation:

Q DP problem:
The TRS P consists of the following rules:

UNIF_PAIRSE_IN_G(.(black, .(black, X1))) → UNIF_PAIRSE_IN_G(X1)
UNIF_PAIRSE_IN_G(.(w, .(w, X2))) → UNIF_PAIRSE_IN_G(X2)
UNIF_PAIRSE_IN_G(.(black, .(w, X2))) → UNIF_PAIRSE_IN_G(X2)
UNIF_PAIRSE_IN_G(.(w, .(black, X2))) → UNIF_PAIRSE_IN_G(X2)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(14) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • UNIF_PAIRSE_IN_G(.(black, .(black, X1))) → UNIF_PAIRSE_IN_G(X1)
    The graph contains the following edges 1 > 1

  • UNIF_PAIRSE_IN_G(.(w, .(w, X2))) → UNIF_PAIRSE_IN_G(X2)
    The graph contains the following edges 1 > 1

  • UNIF_PAIRSE_IN_G(.(black, .(w, X2))) → UNIF_PAIRSE_IN_G(X2)
    The graph contains the following edges 1 > 1

  • UNIF_PAIRSE_IN_G(.(w, .(black, X2))) → UNIF_PAIRSE_IN_G(X2)
    The graph contains the following edges 1 > 1

(15) YES

(16) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

UNIF_LINESC_IN_GG(.(X1, .(X2, X3)), .(X4, .(X5, X6))) → PD_IN_GGGGGG(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6)
PD_IN_GGGGGG(X1, X2, X3, X4, X5, X6) → U21_GGGGGG(X1, X2, X3, X4, X5, X6, unif_pairscG_in_gg(X1, X2))
U21_GGGGGG(X1, X2, X3, X4, X5, X6, unif_pairscG_out_gg(X1, X2)) → UNIF_LINESC_IN_GG(.(X3, X4), .(X5, X6))

The TRS R consists of the following rules:

varmatcA_in_ga([], []) → varmatcA_out_ga([], [])
varmatcA_in_ga(.(X1, X2), .(X3, X4)) → U29_ga(X1, X2, X3, X4, varmatcA_in_ga(X1, X3))
varmatcA_in_ga(.(black, X1), .(black, X2)) → U31_ga(X1, X2, varmatcA_in_ga(X1, X2))
varmatcA_in_ga(.(white, X1), .(w(X2), X3)) → U32_ga(X1, X2, X3, varmatcA_in_ga(X1, X3))
U32_ga(X1, X2, X3, varmatcA_out_ga(X1, X3)) → varmatcA_out_ga(.(white, X1), .(w(X2), X3))
U31_ga(X1, X2, varmatcA_out_ga(X1, X2)) → varmatcA_out_ga(.(black, X1), .(black, X2))
U29_ga(X1, X2, X3, X4, varmatcA_out_ga(X1, X3)) → U30_ga(X1, X2, X3, X4, varmatcA_in_ga(X2, X4))
U30_ga(X1, X2, X3, X4, varmatcA_out_ga(X2, X4)) → varmatcA_out_ga(.(X1, X2), .(X3, X4))
unif_pairscG_in_gg(w(X1), .(w(X1), X2)) → U44_gg(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g([]) → unif_pairscE_out_g([])
unif_pairscE_in_g(.(w(X1), .(w(X1), X2))) → U36_g(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(black, .(black, X1))) → U37_g(X1, unif_pairscE_in_g(X1))
unif_pairscE_in_g(.(black, .(w(X1), X2))) → U38_g(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(w(X1), .(black, X2))) → U39_g(X1, X2, unif_pairscE_in_g(X2))
U39_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w(X1), .(black, X2)))
U38_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(black, .(w(X1), X2)))
U37_g(X1, unif_pairscE_out_g(X1)) → unif_pairscE_out_g(.(black, .(black, X1)))
U36_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w(X1), .(w(X1), X2)))
U44_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w(X1), .(w(X1), X2))
unif_pairscG_in_gg(black, .(black, X1)) → U45_gg(X1, unif_pairscE_in_g(X1))
U45_gg(X1, unif_pairscE_out_g(X1)) → unif_pairscG_out_gg(black, .(black, X1))
unif_pairscG_in_gg(black, .(w(X1), X2)) → U46_gg(X1, X2, unif_pairscE_in_g(X2))
U46_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(black, .(w(X1), X2))
unif_pairscG_in_gg(w(X1), .(black, X2)) → U47_gg(X1, X2, unif_pairscE_in_g(X2))
U47_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w(X1), .(black, X2))
unif_linescC_in_gg(.(X1, .(X2, X3)), .(X4, .(X5, X6))) → U35_gg(X1, X2, X3, X4, X5, X6, qcD_in_gggggg(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6))
qcD_in_gggggg(X1, X2, X3, X4, X5, X6) → U42_gggggg(X1, X2, X3, X4, X5, X6, unif_pairscG_in_gg(X1, X2))
U42_gggggg(X1, X2, X3, X4, X5, X6, unif_pairscG_out_gg(X1, X2)) → U43_gggggg(X1, X2, X3, X4, X5, X6, unif_linescC_in_gg(.(X3, X4), .(X5, X6)))
unif_linescC_in_gg(.(X1, []), .(X2, [])) → unif_linescC_out_gg(.(X1, []), .(X2, []))
U43_gggggg(X1, X2, X3, X4, X5, X6, unif_linescC_out_gg(.(X3, X4), .(X5, X6))) → qcD_out_gggggg(X1, X2, X3, X4, X5, X6)
U35_gg(X1, X2, X3, X4, X5, X6, qcD_out_gggggg(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6)) → unif_linescC_out_gg(.(X1, .(X2, X3)), .(X4, .(X5, X6)))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
varmatcA_in_ga(x1, x2)  =  varmatcA_in_ga(x1)
[]  =  []
varmatcA_out_ga(x1, x2)  =  varmatcA_out_ga(x1, x2)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x1, x2, x5)
black  =  black
U31_ga(x1, x2, x3)  =  U31_ga(x1, x3)
white  =  white
U32_ga(x1, x2, x3, x4)  =  U32_ga(x1, x4)
w(x1)  =  w
U30_ga(x1, x2, x3, x4, x5)  =  U30_ga(x1, x2, x3, x5)
unif_pairscG_in_gg(x1, x2)  =  unif_pairscG_in_gg(x1, x2)
U44_gg(x1, x2, x3)  =  U44_gg(x2, x3)
unif_pairscE_in_g(x1)  =  unif_pairscE_in_g(x1)
unif_pairscE_out_g(x1)  =  unif_pairscE_out_g(x1)
U36_g(x1, x2, x3)  =  U36_g(x2, x3)
U37_g(x1, x2)  =  U37_g(x1, x2)
U38_g(x1, x2, x3)  =  U38_g(x2, x3)
U39_g(x1, x2, x3)  =  U39_g(x2, x3)
unif_pairscG_out_gg(x1, x2)  =  unif_pairscG_out_gg(x1, x2)
U45_gg(x1, x2)  =  U45_gg(x1, x2)
U46_gg(x1, x2, x3)  =  U46_gg(x2, x3)
U47_gg(x1, x2, x3)  =  U47_gg(x2, x3)
unif_linescC_in_gg(x1, x2)  =  unif_linescC_in_gg(x1, x2)
U35_gg(x1, x2, x3, x4, x5, x6, x7)  =  U35_gg(x1, x2, x3, x4, x5, x6, x7)
qcD_in_gggggg(x1, x2, x3, x4, x5, x6)  =  qcD_in_gggggg(x1, x2, x3, x4, x5, x6)
U42_gggggg(x1, x2, x3, x4, x5, x6, x7)  =  U42_gggggg(x1, x2, x3, x4, x5, x6, x7)
U43_gggggg(x1, x2, x3, x4, x5, x6, x7)  =  U43_gggggg(x1, x2, x3, x4, x5, x6, x7)
unif_linescC_out_gg(x1, x2)  =  unif_linescC_out_gg(x1, x2)
qcD_out_gggggg(x1, x2, x3, x4, x5, x6)  =  qcD_out_gggggg(x1, x2, x3, x4, x5, x6)
UNIF_LINESC_IN_GG(x1, x2)  =  UNIF_LINESC_IN_GG(x1, x2)
PD_IN_GGGGGG(x1, x2, x3, x4, x5, x6)  =  PD_IN_GGGGGG(x1, x2, x3, x4, x5, x6)
U21_GGGGGG(x1, x2, x3, x4, x5, x6, x7)  =  U21_GGGGGG(x1, x2, x3, x4, x5, x6, x7)

We have to consider all (P,R,Pi)-chains

(17) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(18) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

UNIF_LINESC_IN_GG(.(X1, .(X2, X3)), .(X4, .(X5, X6))) → PD_IN_GGGGGG(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6)
PD_IN_GGGGGG(X1, X2, X3, X4, X5, X6) → U21_GGGGGG(X1, X2, X3, X4, X5, X6, unif_pairscG_in_gg(X1, X2))
U21_GGGGGG(X1, X2, X3, X4, X5, X6, unif_pairscG_out_gg(X1, X2)) → UNIF_LINESC_IN_GG(.(X3, X4), .(X5, X6))

The TRS R consists of the following rules:

unif_pairscG_in_gg(w(X1), .(w(X1), X2)) → U44_gg(X1, X2, unif_pairscE_in_g(X2))
unif_pairscG_in_gg(black, .(black, X1)) → U45_gg(X1, unif_pairscE_in_g(X1))
unif_pairscG_in_gg(black, .(w(X1), X2)) → U46_gg(X1, X2, unif_pairscE_in_g(X2))
unif_pairscG_in_gg(w(X1), .(black, X2)) → U47_gg(X1, X2, unif_pairscE_in_g(X2))
U44_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w(X1), .(w(X1), X2))
U45_gg(X1, unif_pairscE_out_g(X1)) → unif_pairscG_out_gg(black, .(black, X1))
U46_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(black, .(w(X1), X2))
U47_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w(X1), .(black, X2))
unif_pairscE_in_g([]) → unif_pairscE_out_g([])
unif_pairscE_in_g(.(w(X1), .(w(X1), X2))) → U36_g(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(black, .(black, X1))) → U37_g(X1, unif_pairscE_in_g(X1))
unif_pairscE_in_g(.(black, .(w(X1), X2))) → U38_g(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(w(X1), .(black, X2))) → U39_g(X1, X2, unif_pairscE_in_g(X2))
U36_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w(X1), .(w(X1), X2)))
U37_g(X1, unif_pairscE_out_g(X1)) → unif_pairscE_out_g(.(black, .(black, X1)))
U38_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(black, .(w(X1), X2)))
U39_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w(X1), .(black, X2)))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
[]  =  []
black  =  black
w(x1)  =  w
unif_pairscG_in_gg(x1, x2)  =  unif_pairscG_in_gg(x1, x2)
U44_gg(x1, x2, x3)  =  U44_gg(x2, x3)
unif_pairscE_in_g(x1)  =  unif_pairscE_in_g(x1)
unif_pairscE_out_g(x1)  =  unif_pairscE_out_g(x1)
U36_g(x1, x2, x3)  =  U36_g(x2, x3)
U37_g(x1, x2)  =  U37_g(x1, x2)
U38_g(x1, x2, x3)  =  U38_g(x2, x3)
U39_g(x1, x2, x3)  =  U39_g(x2, x3)
unif_pairscG_out_gg(x1, x2)  =  unif_pairscG_out_gg(x1, x2)
U45_gg(x1, x2)  =  U45_gg(x1, x2)
U46_gg(x1, x2, x3)  =  U46_gg(x2, x3)
U47_gg(x1, x2, x3)  =  U47_gg(x2, x3)
UNIF_LINESC_IN_GG(x1, x2)  =  UNIF_LINESC_IN_GG(x1, x2)
PD_IN_GGGGGG(x1, x2, x3, x4, x5, x6)  =  PD_IN_GGGGGG(x1, x2, x3, x4, x5, x6)
U21_GGGGGG(x1, x2, x3, x4, x5, x6, x7)  =  U21_GGGGGG(x1, x2, x3, x4, x5, x6, x7)

We have to consider all (P,R,Pi)-chains

(19) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(20) Obligation:

Q DP problem:
The TRS P consists of the following rules:

UNIF_LINESC_IN_GG(.(X1, .(X2, X3)), .(X4, .(X5, X6))) → PD_IN_GGGGGG(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6)
PD_IN_GGGGGG(X1, X2, X3, X4, X5, X6) → U21_GGGGGG(X1, X2, X3, X4, X5, X6, unif_pairscG_in_gg(X1, X2))
U21_GGGGGG(X1, X2, X3, X4, X5, X6, unif_pairscG_out_gg(X1, X2)) → UNIF_LINESC_IN_GG(.(X3, X4), .(X5, X6))

The TRS R consists of the following rules:

unif_pairscG_in_gg(w, .(w, X2)) → U44_gg(X2, unif_pairscE_in_g(X2))
unif_pairscG_in_gg(black, .(black, X1)) → U45_gg(X1, unif_pairscE_in_g(X1))
unif_pairscG_in_gg(black, .(w, X2)) → U46_gg(X2, unif_pairscE_in_g(X2))
unif_pairscG_in_gg(w, .(black, X2)) → U47_gg(X2, unif_pairscE_in_g(X2))
U44_gg(X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w, .(w, X2))
U45_gg(X1, unif_pairscE_out_g(X1)) → unif_pairscG_out_gg(black, .(black, X1))
U46_gg(X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(black, .(w, X2))
U47_gg(X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w, .(black, X2))
unif_pairscE_in_g([]) → unif_pairscE_out_g([])
unif_pairscE_in_g(.(w, .(w, X2))) → U36_g(X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(black, .(black, X1))) → U37_g(X1, unif_pairscE_in_g(X1))
unif_pairscE_in_g(.(black, .(w, X2))) → U38_g(X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(w, .(black, X2))) → U39_g(X2, unif_pairscE_in_g(X2))
U36_g(X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w, .(w, X2)))
U37_g(X1, unif_pairscE_out_g(X1)) → unif_pairscE_out_g(.(black, .(black, X1)))
U38_g(X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(black, .(w, X2)))
U39_g(X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w, .(black, X2)))

The set Q consists of the following terms:

unif_pairscG_in_gg(x0, x1)
U44_gg(x0, x1)
U45_gg(x0, x1)
U46_gg(x0, x1)
U47_gg(x0, x1)
unif_pairscE_in_g(x0)
U36_g(x0, x1)
U37_g(x0, x1)
U38_g(x0, x1)
U39_g(x0, x1)

We have to consider all (P,Q,R)-chains.

(21) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04,JAR06].


The following pairs can be oriented strictly and are deleted.


UNIF_LINESC_IN_GG(.(X1, .(X2, X3)), .(X4, .(X5, X6))) → PD_IN_GGGGGG(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6)
The remaining pairs can at least be oriented weakly.
Used ordering: Polynomial interpretation [POLO]:

POL(.(x1, x2)) = 1 + x2   
POL(PD_IN_GGGGGG(x1, x2, x3, x4, x5, x6)) = 1 + x6   
POL(U21_GGGGGG(x1, x2, x3, x4, x5, x6, x7)) = 1 + x6   
POL(U36_g(x1, x2)) = 0   
POL(U37_g(x1, x2)) = 0   
POL(U38_g(x1, x2)) = 0   
POL(U39_g(x1, x2)) = 0   
POL(U44_gg(x1, x2)) = 0   
POL(U45_gg(x1, x2)) = 0   
POL(U46_gg(x1, x2)) = 0   
POL(U47_gg(x1, x2)) = 0   
POL(UNIF_LINESC_IN_GG(x1, x2)) = x2   
POL([]) = 0   
POL(black) = 0   
POL(unif_pairscE_in_g(x1)) = 0   
POL(unif_pairscE_out_g(x1)) = 0   
POL(unif_pairscG_in_gg(x1, x2)) = 0   
POL(unif_pairscG_out_gg(x1, x2)) = 0   
POL(w) = 0   

The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented:
none

(22) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PD_IN_GGGGGG(X1, X2, X3, X4, X5, X6) → U21_GGGGGG(X1, X2, X3, X4, X5, X6, unif_pairscG_in_gg(X1, X2))
U21_GGGGGG(X1, X2, X3, X4, X5, X6, unif_pairscG_out_gg(X1, X2)) → UNIF_LINESC_IN_GG(.(X3, X4), .(X5, X6))

The TRS R consists of the following rules:

unif_pairscG_in_gg(w, .(w, X2)) → U44_gg(X2, unif_pairscE_in_g(X2))
unif_pairscG_in_gg(black, .(black, X1)) → U45_gg(X1, unif_pairscE_in_g(X1))
unif_pairscG_in_gg(black, .(w, X2)) → U46_gg(X2, unif_pairscE_in_g(X2))
unif_pairscG_in_gg(w, .(black, X2)) → U47_gg(X2, unif_pairscE_in_g(X2))
U44_gg(X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w, .(w, X2))
U45_gg(X1, unif_pairscE_out_g(X1)) → unif_pairscG_out_gg(black, .(black, X1))
U46_gg(X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(black, .(w, X2))
U47_gg(X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w, .(black, X2))
unif_pairscE_in_g([]) → unif_pairscE_out_g([])
unif_pairscE_in_g(.(w, .(w, X2))) → U36_g(X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(black, .(black, X1))) → U37_g(X1, unif_pairscE_in_g(X1))
unif_pairscE_in_g(.(black, .(w, X2))) → U38_g(X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(w, .(black, X2))) → U39_g(X2, unif_pairscE_in_g(X2))
U36_g(X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w, .(w, X2)))
U37_g(X1, unif_pairscE_out_g(X1)) → unif_pairscE_out_g(.(black, .(black, X1)))
U38_g(X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(black, .(w, X2)))
U39_g(X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w, .(black, X2)))

The set Q consists of the following terms:

unif_pairscG_in_gg(x0, x1)
U44_gg(x0, x1)
U45_gg(x0, x1)
U46_gg(x0, x1)
U47_gg(x0, x1)
unif_pairscE_in_g(x0)
U36_g(x0, x1)
U37_g(x0, x1)
U38_g(x0, x1)
U39_g(x0, x1)

We have to consider all (P,Q,R)-chains.

(23) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.

(24) TRUE

(25) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

UNIF_MATRXB_IN_GG(X1, .(X2, X3)) → U7_GG(X1, X2, X3, unif_linescC_in_gg(X1, X2))
U7_GG(X1, X2, X3, unif_linescC_out_gg(X1, X2)) → UNIF_MATRXB_IN_GG(X2, X3)

The TRS R consists of the following rules:

varmatcA_in_ga([], []) → varmatcA_out_ga([], [])
varmatcA_in_ga(.(X1, X2), .(X3, X4)) → U29_ga(X1, X2, X3, X4, varmatcA_in_ga(X1, X3))
varmatcA_in_ga(.(black, X1), .(black, X2)) → U31_ga(X1, X2, varmatcA_in_ga(X1, X2))
varmatcA_in_ga(.(white, X1), .(w(X2), X3)) → U32_ga(X1, X2, X3, varmatcA_in_ga(X1, X3))
U32_ga(X1, X2, X3, varmatcA_out_ga(X1, X3)) → varmatcA_out_ga(.(white, X1), .(w(X2), X3))
U31_ga(X1, X2, varmatcA_out_ga(X1, X2)) → varmatcA_out_ga(.(black, X1), .(black, X2))
U29_ga(X1, X2, X3, X4, varmatcA_out_ga(X1, X3)) → U30_ga(X1, X2, X3, X4, varmatcA_in_ga(X2, X4))
U30_ga(X1, X2, X3, X4, varmatcA_out_ga(X2, X4)) → varmatcA_out_ga(.(X1, X2), .(X3, X4))
unif_pairscG_in_gg(w(X1), .(w(X1), X2)) → U44_gg(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g([]) → unif_pairscE_out_g([])
unif_pairscE_in_g(.(w(X1), .(w(X1), X2))) → U36_g(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(black, .(black, X1))) → U37_g(X1, unif_pairscE_in_g(X1))
unif_pairscE_in_g(.(black, .(w(X1), X2))) → U38_g(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(w(X1), .(black, X2))) → U39_g(X1, X2, unif_pairscE_in_g(X2))
U39_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w(X1), .(black, X2)))
U38_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(black, .(w(X1), X2)))
U37_g(X1, unif_pairscE_out_g(X1)) → unif_pairscE_out_g(.(black, .(black, X1)))
U36_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w(X1), .(w(X1), X2)))
U44_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w(X1), .(w(X1), X2))
unif_pairscG_in_gg(black, .(black, X1)) → U45_gg(X1, unif_pairscE_in_g(X1))
U45_gg(X1, unif_pairscE_out_g(X1)) → unif_pairscG_out_gg(black, .(black, X1))
unif_pairscG_in_gg(black, .(w(X1), X2)) → U46_gg(X1, X2, unif_pairscE_in_g(X2))
U46_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(black, .(w(X1), X2))
unif_pairscG_in_gg(w(X1), .(black, X2)) → U47_gg(X1, X2, unif_pairscE_in_g(X2))
U47_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w(X1), .(black, X2))
unif_linescC_in_gg(.(X1, .(X2, X3)), .(X4, .(X5, X6))) → U35_gg(X1, X2, X3, X4, X5, X6, qcD_in_gggggg(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6))
qcD_in_gggggg(X1, X2, X3, X4, X5, X6) → U42_gggggg(X1, X2, X3, X4, X5, X6, unif_pairscG_in_gg(X1, X2))
U42_gggggg(X1, X2, X3, X4, X5, X6, unif_pairscG_out_gg(X1, X2)) → U43_gggggg(X1, X2, X3, X4, X5, X6, unif_linescC_in_gg(.(X3, X4), .(X5, X6)))
unif_linescC_in_gg(.(X1, []), .(X2, [])) → unif_linescC_out_gg(.(X1, []), .(X2, []))
U43_gggggg(X1, X2, X3, X4, X5, X6, unif_linescC_out_gg(.(X3, X4), .(X5, X6))) → qcD_out_gggggg(X1, X2, X3, X4, X5, X6)
U35_gg(X1, X2, X3, X4, X5, X6, qcD_out_gggggg(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6)) → unif_linescC_out_gg(.(X1, .(X2, X3)), .(X4, .(X5, X6)))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
varmatcA_in_ga(x1, x2)  =  varmatcA_in_ga(x1)
[]  =  []
varmatcA_out_ga(x1, x2)  =  varmatcA_out_ga(x1, x2)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x1, x2, x5)
black  =  black
U31_ga(x1, x2, x3)  =  U31_ga(x1, x3)
white  =  white
U32_ga(x1, x2, x3, x4)  =  U32_ga(x1, x4)
w(x1)  =  w
U30_ga(x1, x2, x3, x4, x5)  =  U30_ga(x1, x2, x3, x5)
unif_pairscG_in_gg(x1, x2)  =  unif_pairscG_in_gg(x1, x2)
U44_gg(x1, x2, x3)  =  U44_gg(x2, x3)
unif_pairscE_in_g(x1)  =  unif_pairscE_in_g(x1)
unif_pairscE_out_g(x1)  =  unif_pairscE_out_g(x1)
U36_g(x1, x2, x3)  =  U36_g(x2, x3)
U37_g(x1, x2)  =  U37_g(x1, x2)
U38_g(x1, x2, x3)  =  U38_g(x2, x3)
U39_g(x1, x2, x3)  =  U39_g(x2, x3)
unif_pairscG_out_gg(x1, x2)  =  unif_pairscG_out_gg(x1, x2)
U45_gg(x1, x2)  =  U45_gg(x1, x2)
U46_gg(x1, x2, x3)  =  U46_gg(x2, x3)
U47_gg(x1, x2, x3)  =  U47_gg(x2, x3)
unif_linescC_in_gg(x1, x2)  =  unif_linescC_in_gg(x1, x2)
U35_gg(x1, x2, x3, x4, x5, x6, x7)  =  U35_gg(x1, x2, x3, x4, x5, x6, x7)
qcD_in_gggggg(x1, x2, x3, x4, x5, x6)  =  qcD_in_gggggg(x1, x2, x3, x4, x5, x6)
U42_gggggg(x1, x2, x3, x4, x5, x6, x7)  =  U42_gggggg(x1, x2, x3, x4, x5, x6, x7)
U43_gggggg(x1, x2, x3, x4, x5, x6, x7)  =  U43_gggggg(x1, x2, x3, x4, x5, x6, x7)
unif_linescC_out_gg(x1, x2)  =  unif_linescC_out_gg(x1, x2)
qcD_out_gggggg(x1, x2, x3, x4, x5, x6)  =  qcD_out_gggggg(x1, x2, x3, x4, x5, x6)
UNIF_MATRXB_IN_GG(x1, x2)  =  UNIF_MATRXB_IN_GG(x1, x2)
U7_GG(x1, x2, x3, x4)  =  U7_GG(x1, x2, x3, x4)

We have to consider all (P,R,Pi)-chains

(26) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(27) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

UNIF_MATRXB_IN_GG(X1, .(X2, X3)) → U7_GG(X1, X2, X3, unif_linescC_in_gg(X1, X2))
U7_GG(X1, X2, X3, unif_linescC_out_gg(X1, X2)) → UNIF_MATRXB_IN_GG(X2, X3)

The TRS R consists of the following rules:

unif_linescC_in_gg(.(X1, .(X2, X3)), .(X4, .(X5, X6))) → U35_gg(X1, X2, X3, X4, X5, X6, qcD_in_gggggg(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6))
unif_linescC_in_gg(.(X1, []), .(X2, [])) → unif_linescC_out_gg(.(X1, []), .(X2, []))
U35_gg(X1, X2, X3, X4, X5, X6, qcD_out_gggggg(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6)) → unif_linescC_out_gg(.(X1, .(X2, X3)), .(X4, .(X5, X6)))
qcD_in_gggggg(X1, X2, X3, X4, X5, X6) → U42_gggggg(X1, X2, X3, X4, X5, X6, unif_pairscG_in_gg(X1, X2))
U42_gggggg(X1, X2, X3, X4, X5, X6, unif_pairscG_out_gg(X1, X2)) → U43_gggggg(X1, X2, X3, X4, X5, X6, unif_linescC_in_gg(.(X3, X4), .(X5, X6)))
unif_pairscG_in_gg(w(X1), .(w(X1), X2)) → U44_gg(X1, X2, unif_pairscE_in_g(X2))
unif_pairscG_in_gg(black, .(black, X1)) → U45_gg(X1, unif_pairscE_in_g(X1))
unif_pairscG_in_gg(black, .(w(X1), X2)) → U46_gg(X1, X2, unif_pairscE_in_g(X2))
unif_pairscG_in_gg(w(X1), .(black, X2)) → U47_gg(X1, X2, unif_pairscE_in_g(X2))
U43_gggggg(X1, X2, X3, X4, X5, X6, unif_linescC_out_gg(.(X3, X4), .(X5, X6))) → qcD_out_gggggg(X1, X2, X3, X4, X5, X6)
U44_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w(X1), .(w(X1), X2))
U45_gg(X1, unif_pairscE_out_g(X1)) → unif_pairscG_out_gg(black, .(black, X1))
U46_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(black, .(w(X1), X2))
U47_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w(X1), .(black, X2))
unif_pairscE_in_g([]) → unif_pairscE_out_g([])
unif_pairscE_in_g(.(w(X1), .(w(X1), X2))) → U36_g(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(black, .(black, X1))) → U37_g(X1, unif_pairscE_in_g(X1))
unif_pairscE_in_g(.(black, .(w(X1), X2))) → U38_g(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(w(X1), .(black, X2))) → U39_g(X1, X2, unif_pairscE_in_g(X2))
U36_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w(X1), .(w(X1), X2)))
U37_g(X1, unif_pairscE_out_g(X1)) → unif_pairscE_out_g(.(black, .(black, X1)))
U38_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(black, .(w(X1), X2)))
U39_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w(X1), .(black, X2)))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
[]  =  []
black  =  black
w(x1)  =  w
unif_pairscG_in_gg(x1, x2)  =  unif_pairscG_in_gg(x1, x2)
U44_gg(x1, x2, x3)  =  U44_gg(x2, x3)
unif_pairscE_in_g(x1)  =  unif_pairscE_in_g(x1)
unif_pairscE_out_g(x1)  =  unif_pairscE_out_g(x1)
U36_g(x1, x2, x3)  =  U36_g(x2, x3)
U37_g(x1, x2)  =  U37_g(x1, x2)
U38_g(x1, x2, x3)  =  U38_g(x2, x3)
U39_g(x1, x2, x3)  =  U39_g(x2, x3)
unif_pairscG_out_gg(x1, x2)  =  unif_pairscG_out_gg(x1, x2)
U45_gg(x1, x2)  =  U45_gg(x1, x2)
U46_gg(x1, x2, x3)  =  U46_gg(x2, x3)
U47_gg(x1, x2, x3)  =  U47_gg(x2, x3)
unif_linescC_in_gg(x1, x2)  =  unif_linescC_in_gg(x1, x2)
U35_gg(x1, x2, x3, x4, x5, x6, x7)  =  U35_gg(x1, x2, x3, x4, x5, x6, x7)
qcD_in_gggggg(x1, x2, x3, x4, x5, x6)  =  qcD_in_gggggg(x1, x2, x3, x4, x5, x6)
U42_gggggg(x1, x2, x3, x4, x5, x6, x7)  =  U42_gggggg(x1, x2, x3, x4, x5, x6, x7)
U43_gggggg(x1, x2, x3, x4, x5, x6, x7)  =  U43_gggggg(x1, x2, x3, x4, x5, x6, x7)
unif_linescC_out_gg(x1, x2)  =  unif_linescC_out_gg(x1, x2)
qcD_out_gggggg(x1, x2, x3, x4, x5, x6)  =  qcD_out_gggggg(x1, x2, x3, x4, x5, x6)
UNIF_MATRXB_IN_GG(x1, x2)  =  UNIF_MATRXB_IN_GG(x1, x2)
U7_GG(x1, x2, x3, x4)  =  U7_GG(x1, x2, x3, x4)

We have to consider all (P,R,Pi)-chains

(28) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(29) Obligation:

Q DP problem:
The TRS P consists of the following rules:

UNIF_MATRXB_IN_GG(X1, .(X2, X3)) → U7_GG(X1, X2, X3, unif_linescC_in_gg(X1, X2))
U7_GG(X1, X2, X3, unif_linescC_out_gg(X1, X2)) → UNIF_MATRXB_IN_GG(X2, X3)

The TRS R consists of the following rules:

unif_linescC_in_gg(.(X1, .(X2, X3)), .(X4, .(X5, X6))) → U35_gg(X1, X2, X3, X4, X5, X6, qcD_in_gggggg(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6))
unif_linescC_in_gg(.(X1, []), .(X2, [])) → unif_linescC_out_gg(.(X1, []), .(X2, []))
U35_gg(X1, X2, X3, X4, X5, X6, qcD_out_gggggg(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6)) → unif_linescC_out_gg(.(X1, .(X2, X3)), .(X4, .(X5, X6)))
qcD_in_gggggg(X1, X2, X3, X4, X5, X6) → U42_gggggg(X1, X2, X3, X4, X5, X6, unif_pairscG_in_gg(X1, X2))
U42_gggggg(X1, X2, X3, X4, X5, X6, unif_pairscG_out_gg(X1, X2)) → U43_gggggg(X1, X2, X3, X4, X5, X6, unif_linescC_in_gg(.(X3, X4), .(X5, X6)))
unif_pairscG_in_gg(w, .(w, X2)) → U44_gg(X2, unif_pairscE_in_g(X2))
unif_pairscG_in_gg(black, .(black, X1)) → U45_gg(X1, unif_pairscE_in_g(X1))
unif_pairscG_in_gg(black, .(w, X2)) → U46_gg(X2, unif_pairscE_in_g(X2))
unif_pairscG_in_gg(w, .(black, X2)) → U47_gg(X2, unif_pairscE_in_g(X2))
U43_gggggg(X1, X2, X3, X4, X5, X6, unif_linescC_out_gg(.(X3, X4), .(X5, X6))) → qcD_out_gggggg(X1, X2, X3, X4, X5, X6)
U44_gg(X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w, .(w, X2))
U45_gg(X1, unif_pairscE_out_g(X1)) → unif_pairscG_out_gg(black, .(black, X1))
U46_gg(X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(black, .(w, X2))
U47_gg(X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w, .(black, X2))
unif_pairscE_in_g([]) → unif_pairscE_out_g([])
unif_pairscE_in_g(.(w, .(w, X2))) → U36_g(X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(black, .(black, X1))) → U37_g(X1, unif_pairscE_in_g(X1))
unif_pairscE_in_g(.(black, .(w, X2))) → U38_g(X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(w, .(black, X2))) → U39_g(X2, unif_pairscE_in_g(X2))
U36_g(X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w, .(w, X2)))
U37_g(X1, unif_pairscE_out_g(X1)) → unif_pairscE_out_g(.(black, .(black, X1)))
U38_g(X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(black, .(w, X2)))
U39_g(X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w, .(black, X2)))

The set Q consists of the following terms:

unif_linescC_in_gg(x0, x1)
U35_gg(x0, x1, x2, x3, x4, x5, x6)
qcD_in_gggggg(x0, x1, x2, x3, x4, x5)
U42_gggggg(x0, x1, x2, x3, x4, x5, x6)
unif_pairscG_in_gg(x0, x1)
U43_gggggg(x0, x1, x2, x3, x4, x5, x6)
U44_gg(x0, x1)
U45_gg(x0, x1)
U46_gg(x0, x1)
U47_gg(x0, x1)
unif_pairscE_in_g(x0)
U36_g(x0, x1)
U37_g(x0, x1)
U38_g(x0, x1)
U39_g(x0, x1)

We have to consider all (P,Q,R)-chains.

(30) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • U7_GG(X1, X2, X3, unif_linescC_out_gg(X1, X2)) → UNIF_MATRXB_IN_GG(X2, X3)
    The graph contains the following edges 2 >= 1, 4 > 1, 3 >= 2

  • UNIF_MATRXB_IN_GG(X1, .(X2, X3)) → U7_GG(X1, X2, X3, unif_linescC_in_gg(X1, X2))
    The graph contains the following edges 1 >= 1, 2 > 2, 2 > 3

(31) YES

(32) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

VARMATA_IN_GA(.(X1, X2), .(X3, X4)) → U2_GA(X1, X2, X3, X4, varmatcA_in_ga(X1, X3))
U2_GA(X1, X2, X3, X4, varmatcA_out_ga(X1, X3)) → VARMATA_IN_GA(X2, X4)
VARMATA_IN_GA(.(X1, X2), .(X3, X4)) → VARMATA_IN_GA(X1, X3)
VARMATA_IN_GA(.(black, X1), .(black, X2)) → VARMATA_IN_GA(X1, X2)
VARMATA_IN_GA(.(white, X1), .(w(X2), X3)) → VARMATA_IN_GA(X1, X3)

The TRS R consists of the following rules:

varmatcA_in_ga([], []) → varmatcA_out_ga([], [])
varmatcA_in_ga(.(X1, X2), .(X3, X4)) → U29_ga(X1, X2, X3, X4, varmatcA_in_ga(X1, X3))
varmatcA_in_ga(.(black, X1), .(black, X2)) → U31_ga(X1, X2, varmatcA_in_ga(X1, X2))
varmatcA_in_ga(.(white, X1), .(w(X2), X3)) → U32_ga(X1, X2, X3, varmatcA_in_ga(X1, X3))
U32_ga(X1, X2, X3, varmatcA_out_ga(X1, X3)) → varmatcA_out_ga(.(white, X1), .(w(X2), X3))
U31_ga(X1, X2, varmatcA_out_ga(X1, X2)) → varmatcA_out_ga(.(black, X1), .(black, X2))
U29_ga(X1, X2, X3, X4, varmatcA_out_ga(X1, X3)) → U30_ga(X1, X2, X3, X4, varmatcA_in_ga(X2, X4))
U30_ga(X1, X2, X3, X4, varmatcA_out_ga(X2, X4)) → varmatcA_out_ga(.(X1, X2), .(X3, X4))
unif_pairscG_in_gg(w(X1), .(w(X1), X2)) → U44_gg(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g([]) → unif_pairscE_out_g([])
unif_pairscE_in_g(.(w(X1), .(w(X1), X2))) → U36_g(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(black, .(black, X1))) → U37_g(X1, unif_pairscE_in_g(X1))
unif_pairscE_in_g(.(black, .(w(X1), X2))) → U38_g(X1, X2, unif_pairscE_in_g(X2))
unif_pairscE_in_g(.(w(X1), .(black, X2))) → U39_g(X1, X2, unif_pairscE_in_g(X2))
U39_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w(X1), .(black, X2)))
U38_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(black, .(w(X1), X2)))
U37_g(X1, unif_pairscE_out_g(X1)) → unif_pairscE_out_g(.(black, .(black, X1)))
U36_g(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscE_out_g(.(w(X1), .(w(X1), X2)))
U44_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w(X1), .(w(X1), X2))
unif_pairscG_in_gg(black, .(black, X1)) → U45_gg(X1, unif_pairscE_in_g(X1))
U45_gg(X1, unif_pairscE_out_g(X1)) → unif_pairscG_out_gg(black, .(black, X1))
unif_pairscG_in_gg(black, .(w(X1), X2)) → U46_gg(X1, X2, unif_pairscE_in_g(X2))
U46_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(black, .(w(X1), X2))
unif_pairscG_in_gg(w(X1), .(black, X2)) → U47_gg(X1, X2, unif_pairscE_in_g(X2))
U47_gg(X1, X2, unif_pairscE_out_g(X2)) → unif_pairscG_out_gg(w(X1), .(black, X2))
unif_linescC_in_gg(.(X1, .(X2, X3)), .(X4, .(X5, X6))) → U35_gg(X1, X2, X3, X4, X5, X6, qcD_in_gggggg(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6))
qcD_in_gggggg(X1, X2, X3, X4, X5, X6) → U42_gggggg(X1, X2, X3, X4, X5, X6, unif_pairscG_in_gg(X1, X2))
U42_gggggg(X1, X2, X3, X4, X5, X6, unif_pairscG_out_gg(X1, X2)) → U43_gggggg(X1, X2, X3, X4, X5, X6, unif_linescC_in_gg(.(X3, X4), .(X5, X6)))
unif_linescC_in_gg(.(X1, []), .(X2, [])) → unif_linescC_out_gg(.(X1, []), .(X2, []))
U43_gggggg(X1, X2, X3, X4, X5, X6, unif_linescC_out_gg(.(X3, X4), .(X5, X6))) → qcD_out_gggggg(X1, X2, X3, X4, X5, X6)
U35_gg(X1, X2, X3, X4, X5, X6, qcD_out_gggggg(X1, .(X2, .(X4, .(X5, .(X1, .(X4, .(X2, .(X5, .(X1, .(X5, .(X2, .(X4, []))))))))))), X2, X3, X5, X6)) → unif_linescC_out_gg(.(X1, .(X2, X3)), .(X4, .(X5, X6)))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
varmatcA_in_ga(x1, x2)  =  varmatcA_in_ga(x1)
[]  =  []
varmatcA_out_ga(x1, x2)  =  varmatcA_out_ga(x1, x2)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x1, x2, x5)
black  =  black
U31_ga(x1, x2, x3)  =  U31_ga(x1, x3)
white  =  white
U32_ga(x1, x2, x3, x4)  =  U32_ga(x1, x4)
w(x1)  =  w
U30_ga(x1, x2, x3, x4, x5)  =  U30_ga(x1, x2, x3, x5)
unif_pairscG_in_gg(x1, x2)  =  unif_pairscG_in_gg(x1, x2)
U44_gg(x1, x2, x3)  =  U44_gg(x2, x3)
unif_pairscE_in_g(x1)  =  unif_pairscE_in_g(x1)
unif_pairscE_out_g(x1)  =  unif_pairscE_out_g(x1)
U36_g(x1, x2, x3)  =  U36_g(x2, x3)
U37_g(x1, x2)  =  U37_g(x1, x2)
U38_g(x1, x2, x3)  =  U38_g(x2, x3)
U39_g(x1, x2, x3)  =  U39_g(x2, x3)
unif_pairscG_out_gg(x1, x2)  =  unif_pairscG_out_gg(x1, x2)
U45_gg(x1, x2)  =  U45_gg(x1, x2)
U46_gg(x1, x2, x3)  =  U46_gg(x2, x3)
U47_gg(x1, x2, x3)  =  U47_gg(x2, x3)
unif_linescC_in_gg(x1, x2)  =  unif_linescC_in_gg(x1, x2)
U35_gg(x1, x2, x3, x4, x5, x6, x7)  =  U35_gg(x1, x2, x3, x4, x5, x6, x7)
qcD_in_gggggg(x1, x2, x3, x4, x5, x6)  =  qcD_in_gggggg(x1, x2, x3, x4, x5, x6)
U42_gggggg(x1, x2, x3, x4, x5, x6, x7)  =  U42_gggggg(x1, x2, x3, x4, x5, x6, x7)
U43_gggggg(x1, x2, x3, x4, x5, x6, x7)  =  U43_gggggg(x1, x2, x3, x4, x5, x6, x7)
unif_linescC_out_gg(x1, x2)  =  unif_linescC_out_gg(x1, x2)
qcD_out_gggggg(x1, x2, x3, x4, x5, x6)  =  qcD_out_gggggg(x1, x2, x3, x4, x5, x6)
VARMATA_IN_GA(x1, x2)  =  VARMATA_IN_GA(x1)
U2_GA(x1, x2, x3, x4, x5)  =  U2_GA(x1, x2, x5)

We have to consider all (P,R,Pi)-chains

(33) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(34) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

VARMATA_IN_GA(.(X1, X2), .(X3, X4)) → U2_GA(X1, X2, X3, X4, varmatcA_in_ga(X1, X3))
U2_GA(X1, X2, X3, X4, varmatcA_out_ga(X1, X3)) → VARMATA_IN_GA(X2, X4)
VARMATA_IN_GA(.(X1, X2), .(X3, X4)) → VARMATA_IN_GA(X1, X3)
VARMATA_IN_GA(.(black, X1), .(black, X2)) → VARMATA_IN_GA(X1, X2)
VARMATA_IN_GA(.(white, X1), .(w(X2), X3)) → VARMATA_IN_GA(X1, X3)

The TRS R consists of the following rules:

varmatcA_in_ga([], []) → varmatcA_out_ga([], [])
varmatcA_in_ga(.(X1, X2), .(X3, X4)) → U29_ga(X1, X2, X3, X4, varmatcA_in_ga(X1, X3))
varmatcA_in_ga(.(black, X1), .(black, X2)) → U31_ga(X1, X2, varmatcA_in_ga(X1, X2))
varmatcA_in_ga(.(white, X1), .(w(X2), X3)) → U32_ga(X1, X2, X3, varmatcA_in_ga(X1, X3))
U29_ga(X1, X2, X3, X4, varmatcA_out_ga(X1, X3)) → U30_ga(X1, X2, X3, X4, varmatcA_in_ga(X2, X4))
U31_ga(X1, X2, varmatcA_out_ga(X1, X2)) → varmatcA_out_ga(.(black, X1), .(black, X2))
U32_ga(X1, X2, X3, varmatcA_out_ga(X1, X3)) → varmatcA_out_ga(.(white, X1), .(w(X2), X3))
U30_ga(X1, X2, X3, X4, varmatcA_out_ga(X2, X4)) → varmatcA_out_ga(.(X1, X2), .(X3, X4))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
varmatcA_in_ga(x1, x2)  =  varmatcA_in_ga(x1)
[]  =  []
varmatcA_out_ga(x1, x2)  =  varmatcA_out_ga(x1, x2)
U29_ga(x1, x2, x3, x4, x5)  =  U29_ga(x1, x2, x5)
black  =  black
U31_ga(x1, x2, x3)  =  U31_ga(x1, x3)
white  =  white
U32_ga(x1, x2, x3, x4)  =  U32_ga(x1, x4)
w(x1)  =  w
U30_ga(x1, x2, x3, x4, x5)  =  U30_ga(x1, x2, x3, x5)
VARMATA_IN_GA(x1, x2)  =  VARMATA_IN_GA(x1)
U2_GA(x1, x2, x3, x4, x5)  =  U2_GA(x1, x2, x5)

We have to consider all (P,R,Pi)-chains

(35) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(36) Obligation:

Q DP problem:
The TRS P consists of the following rules:

VARMATA_IN_GA(.(X1, X2)) → U2_GA(X1, X2, varmatcA_in_ga(X1))
U2_GA(X1, X2, varmatcA_out_ga(X1, X3)) → VARMATA_IN_GA(X2)
VARMATA_IN_GA(.(X1, X2)) → VARMATA_IN_GA(X1)
VARMATA_IN_GA(.(black, X1)) → VARMATA_IN_GA(X1)
VARMATA_IN_GA(.(white, X1)) → VARMATA_IN_GA(X1)

The TRS R consists of the following rules:

varmatcA_in_ga([]) → varmatcA_out_ga([], [])
varmatcA_in_ga(.(X1, X2)) → U29_ga(X1, X2, varmatcA_in_ga(X1))
varmatcA_in_ga(.(black, X1)) → U31_ga(X1, varmatcA_in_ga(X1))
varmatcA_in_ga(.(white, X1)) → U32_ga(X1, varmatcA_in_ga(X1))
U29_ga(X1, X2, varmatcA_out_ga(X1, X3)) → U30_ga(X1, X2, X3, varmatcA_in_ga(X2))
U31_ga(X1, varmatcA_out_ga(X1, X2)) → varmatcA_out_ga(.(black, X1), .(black, X2))
U32_ga(X1, varmatcA_out_ga(X1, X3)) → varmatcA_out_ga(.(white, X1), .(w, X3))
U30_ga(X1, X2, X3, varmatcA_out_ga(X2, X4)) → varmatcA_out_ga(.(X1, X2), .(X3, X4))

The set Q consists of the following terms:

varmatcA_in_ga(x0)
U29_ga(x0, x1, x2)
U31_ga(x0, x1)
U32_ga(x0, x1)
U30_ga(x0, x1, x2, x3)

We have to consider all (P,Q,R)-chains.

(37) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • U2_GA(X1, X2, varmatcA_out_ga(X1, X3)) → VARMATA_IN_GA(X2)
    The graph contains the following edges 2 >= 1

  • VARMATA_IN_GA(.(X1, X2)) → U2_GA(X1, X2, varmatcA_in_ga(X1))
    The graph contains the following edges 1 > 1, 1 > 2

  • VARMATA_IN_GA(.(X1, X2)) → VARMATA_IN_GA(X1)
    The graph contains the following edges 1 > 1

  • VARMATA_IN_GA(.(black, X1)) → VARMATA_IN_GA(X1)
    The graph contains the following edges 1 > 1

  • VARMATA_IN_GA(.(white, X1)) → VARMATA_IN_GA(X1)
    The graph contains the following edges 1 > 1

(38) YES